/*
 * MyTableModel.java
 *
 * Copyright 2011 Universidad Francisco de Paula Santander (UFPS).
 * Todos los Derechos Reservados.
 * Creado el 10/03/2011, 11:23:38 AM
 */

package com.ufps.cuatro.util.model;

import com.ufps.cuatro.util.Utileria;

/**
 * <i><b>MyTableModel:</b></i> <p>Modelo utilizado para la Tabla de 
 * Administración de Propiedades Disponibles en Componentes.</p>
 * 
 * @author Carlos A. Torres C. - Dolly E. Guerrero. <https://code.google.com/p/tesis4dor/>
 * @version 1.0 10/03/2011
 * @see MyTableModel 
 */
public class MyTableModelProperties extends MyTableModel {
    private static final long serialVersionUID = 875227410783782538L;
    
    /**
     * Columna Alias de la Propiedad.
     */
    public final static int COLUMN_ALIAS = 0;    
    /**
     * Columna Valor de la Propiedad.
     */
    public final static int COLUMN_VALUES = 1;
    /**
     * Columna Generar Código para Modificar Propiedad.
     */
    public final static int COLUMN_VIEWSET = 2;
    /**
     * Columna Generar Código para Devolver Propiedad.
     */
    public final static int COLUMN_VIEWGET = 3;
    /**
     * Columna Reiniciar la propiedad (solo aplica en ciertoso casos).
     */
    public final static int COLUMN_RESET_VALUE = 4;
    
    /**
     * Nombre Columna Alias de la Propiedad.
     */
    public final static String NAME_COLUMN_ALIAS;    
    /**
     * Nombre Columna Valor de la Propiedad.
     */
    public final static String NAME_COLUMN_VALUES;
    /**
     * Nombre Columna Generar Código para Modificar Propiedad.
     */
    public final static String NAME_COLUMN_VIEWSET;
    /**
     * Nombre Columna Generar Código para Devolver Propiedad.
     */
    public final static String NAME_COLUMN_VIEWGET;
    /**
     * Nombre Columna Reiniciar la propiedad (solo aplica en ciertoso casos).
     */
    public final static String NAME_COLUMN_RESET_VALUE;
    
    static{
        NAME_COLUMN_ALIAS = Utileria.leerRecursoTexto("Utileria.title.table.column.alias");
        NAME_COLUMN_VALUES = Utileria.leerRecursoTexto("Utileria.title.table.column.value");
        NAME_COLUMN_VIEWSET = Utileria.leerRecursoTexto("Utileria.title.table.column.viewset");
        NAME_COLUMN_VIEWGET = Utileria.leerRecursoTexto("Utileria.title.table.column.viewget");
        NAME_COLUMN_RESET_VALUE = Utileria.leerRecursoTexto("Utileria.title.table.column.reiniciar");        
    }

    /**
     * Constructor que inicializa Parametros.
     * @param columnNames Array de Nombres de Columnas.
     * @param data Matriz de Datos.
     * @param indicesNoEditables Matriz de Estados de Edición.
     */
    public MyTableModelProperties(String[] columnNames, Object[][] data, boolean[][] indicesNoEditables) {
        super(columnNames, data, indicesNoEditables);
    }

    /**
     * Constructor que inicializa Parametros.
     * @param columnNames Array de Nombres de Columnas.
     * @param data Matriz de Datos.
     */
    public MyTableModelProperties(String[] columnNames, Object[][] data) {
        super(columnNames, data);
    }   

    /*
     * Don't need to implement this method unless your table's
     * editable.
     */
    @Override
    public boolean isCellEditable(int row, int col) {
        //Note that the data/cell address is constant,
        //no matter where the cell appears onscreen.
        try{
            if((this.indicesNoEditables == null && col >= 1)){
                return true;
            }        
            else if(this.indicesNoEditables != null){
                return this.indicesNoEditables[row][col];
            }
            return false;
        }catch(java.lang.Exception ex){}
        return false;
    }
    
    
}